Selecting a picture of a device to identify an associated codeset

ABSTRACT

A browser device communicates via Wi-Fi with a central function device. The function device has information regarding all the various remote controls needed by the consumer. The function device communicates wirelessly with the browser device and in turn then operates all of the consumer&#39;s electronic devices

RELATED APPLICATION INFORMATION

This application claims the benefit of and is a continuation of U.S.application Ser. No. 15/835,804, filed on Dec. 8, 2017, whichapplication claims the benefit of and is a continuation of U.S.application Ser. No. 12/148,420, filed on Apr. 18, 2008, the disclosuresof which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

This application relates to systems including control devices forperforming methods for control of electronic consumer devices.

BACKGROUND INFORMATION

Consumers purchase many electronic devices for their homes. One devicemight be a television. The television comes with a remote control, whichhas various functions; such as on off; channel up and down; volume upand down; and so on. The remote control communicates with the televisionvia an infrared signal. Another electronic consumer device is a DVDplayer. The DVD player likewise comes with its own remote control withits own shape, button layout, button functions, and text and othercharacters on the remote. The same can be said for an audiovisualreceiver, a cable box, and a game console. Some of these devices may beconnected together. For example, the game console can output a videosignal that is connected to the audiovisual receiver via S-video. Thesame can be said for the DVD player. Other methods of connecting devicescan also be used. For example, a cable box may be connected to theaudiovisual receiver using a High Definition Multimedia Interface (HDMI)cable. The net result of all of this is that the consumer must haveanywhere from two to five or more remote controls, each one being neededto control its respective associated electronic consumer device (ECD).Not only does this make for a lot of clutter in the consumer's home, butit also is confusing to remember which remote goes with which device,and which of the many multitudes of possible choices on each remote theconsumer is most interested in.

A more detailed example 20 is shown in FIG. 1. One remote 31, with itsown unique button layout, is used to control a television 21. Anotherremote 32 is used to control an audiovisual receiver 22. Another remote34 is used to control a game console 24, and another remote 36 is usedto control a cable box 26. Lastly, another remote 38 is used to controla DVD player 28. Each remote has its own unique button layout, asillustrated schematically in FIG. 1.

SUMMARY

The system of the preferred embodiment eliminates the need to usemultiple remote control devices on a regular basis. Instead of needing amultitude of different remote controls, a single browser device (forexample, a cellular telephone having a display) can be used. The browserdevice can illustrate all of the various remotes currently used by theconsumer, only one at a time. The illustrated remotes each function inthe same manner as the original remotes. By using the browser device,the clutter and the need to keep and locate a number of differentremotes is eliminated.

In one embodiment, the browser device communicates via Wi-Fi with acentral function device. The function device has information regardingall the various remote controls needed by the consumer. The functiondevice communicates wirelessly with the browser device and in turn thenoperates all of the consumer's electronic devices.

In a first novel aspect, the single-line HDMI-CEC (High DefinitionMultimedia Interface-Consumer Electronic Control) bus or protocol isused to identify an IR codeset for an electronic consumer device (ECD)from a database of IR codesets. When the ECD is coupled to an AV systemvia an HDMI cable, the system automatically queries the new ECD usingthe single-wire HDMI-CEC bus to identify itself. The ECD automaticallyresponds by sending back information across the HDMI-CEC bus. Thisinformation is usable to identify the ECD. In one example, the returnedinformation includes a brand name in ACSII format of the ECD, a devicetype in ASCII format of the ECD, and a model number in ASCII format ofthe ECD. The system uses the returned information to identify aparticular IR codeset in the database that is usable to control the ECD.The system then enables an IR remote control device to use theidentified codeset to send IR remote control operational signals to theECD device so that the IR remote control device can control the ECD. Theuse of HDMI-CEC to identify a codeset is not, however, limited to IRapplications but rather also applies to codesets used to generate anddetect other wireless remote control operational signals such as, forexample, RF remote control operational signals for remote controldevices that transmit RF signals.

In a second novel aspect, illustrations (for example, digital pictures)of a plurality of remote control devices are displayed to a user on aportable display device. The user then uses the portable display deviceto select one of the illustrations that looks like a remote controldevice that the user is trying to imitate. When the user selects theillustration, the system uses the user selection to identify an IRcodeset for the associated ECD from many IR codesets in a database of IRcodesets. In one example, a portable display device such as a PDA, orcellular telephone, or Apple iPhone having a browser communicates withan AV system. The AV system serves the illustrations of the remotecontrol devices, and the portable display device and associated browserdisplays the illustrations to the user. The user then uses the portabledisplay device and browser to select the illustration of the remotecontrol device that the user wishes to emulate. Alternatively, theportable display device displays illustrations or pictures of ECDs thatthe user might want to control. The user uses the portable displaydevice to select the picture of the ECD that the user wishes to control.In either case, the portable display device communicates the userselection information back to the system. The system uses theinformation to identify the IR codeset in the database that controls theECD (the ECD controlled by the remote control device). In one example,the system then enables the portable display device to use theidentified codeset to send IR remote control operational signals to theECD device so that the portable display device can operate as (imitate)the original remote control device picture selected by the user. Byshowing the user pictures of ECDs that the user might want to control,the system is usable to emulate a remote control device that the userhas lost.

In a third novel aspect, pictures of a plurality of remote controldevices are displayed to a user on a portable display device. The usercan use the portable display device to select icons or buttons on thepictures, and to cause functionality of the selected icons or buttons tobe associated with another rendering of a remote control device. Forexample, the user can copy (for example, by “dragging and dropping”) aselected icon or key or button from the pictured remote control deviceto a template of a remote control device illustrated elsewhere on theportable display device. Both the pictured remote control device and thetemplate remote control device are displayed on the portable displaydevice. As the user “drags and drops” icons or keys or buttons, theicons or keys or buttons are added to and appear on the template. Inthis way, icons or keys or buttons from multiple different picturedremote control devices can be dragged and dropped onto the sametemplate, and the functionalities associated with the original icons,key and buttons in the pictured remote control devices are automaticallyassumed by the associated new icons or keys or buttons on the template.Using this feature, the user builds a new custom hybrid remote controldevice, a rendering of which can be displayed on the portable displaydevice. When the user later selects an icon or key or button on thehybrid remote control device, the portable display device performs thefunction that the original pictured remote control device that had thesame key would have performed.

In a fourth novel aspect, the user takes a digital picture of a remotecontrol device to be imitated, and this picture is communicated to asystem. The system performs optical recognition on the digital picture.In one example, a user has a portable display device such as a PDA, orcellular telephone, or Apple iPhone that has camera functionality. Theuser uses the portable display device to take a digital picture of an IRremote control device. The display device then communicates the digitalpicture (for example, in the form of a JPEG file) to the system. Thesystem performs optical object recognition on the digital picture andidentifies which one of a plurality of codesets in a database of codesetis the codeset for the remote control device in the digital picture. Thedatabase may, for example, contain information on what the variousremote control devices look like so that the optical recognition resultswill be usable to identify the pictured remote control device. Thisinformation may include information on the shape of the contour of theremote control device, the number of keys and placement of keys on theremote control device, and text that is printed on the remote controldevice. Once the system has identified the codeset associated with thepictured remote control device, the system communicates back to theportable display device such that the portable display device is enabledto use the identified codeset to send IR remote control operationalsignals in accordance with the codeset. In this way, a user may use theportable display device to take a picture of a remote control devicethat operates a particular ECD. The system then responds by enabling theportable display device to emulate the remote control device. A pictureor rendering of the emulated remote control device may thereafter bedisplayed on the portable display device. When the user selects an iconor key or button on this picture or rendering, the portable displaydevice performs the same function that the original remote controldevice would have performed.

In another example, the internet-accessible computer system receivesfrom a user a digital image of an electrical device via the internet.The electrical device may, for example, be a remote control device or anelectronic consumer device (ECD) that is controlled by a remote controldevice. The internet-accessible computer system then automaticallyperforms optical object recognition on the digital image, and chargesthe user a fee to return information obtained from the opticalrecognition. The returned information may, for example, be codesetinformation.

Further details and embodiments are described in the detaileddescription below. This summary does not purport to define theinvention. The invention is defined by the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, where like numerals indicate like components,illustrate various embodiments.

FIG. 1 (Prior Art) is a diagram of a collection of various electronicconsumer devices, including various means of communication.

FIG. 2 is a schematic illustration of a system for communicating withelectronic consumer devices.

FIG. 2A is a schematic illustration of a system for communicating withelectronic consumer devices, where a device includes among other parts:the functionality of the function device of FIG. 2, the records databaseof FIG. 2, a speaker, a display output, and a signal output 125.

FIG. 3 is a schematic illustration of a database including a pluralityof records regarding various remote controls, including a schematicillustration of some of the detail included in each of the records.

FIG. 4A-4D are illustrations of various control devices used forcontrolling electronic consumer devices.

FIG. 5A-5C are illustrations of other control devices for controllingelectronic consumer devices including a device for controlling lightsthat may be turned on or off or dimmed or brightened.

FIG. 6 is a schematic illustration of a display device illustrating apicture of a remote control with a user's finger on one of theillustrated buttons.

FIG. 7 is an illustration of a display device including buttons thatcause a collection of changes in the function of electronic consumerdevices, based on the different interests or moods of the user.

FIG. 8 is a diagram of a display with an illustration of a possible mainmenu that permits a user to select various functions.

FIG. 9 is an illustration of a method of how a consumer can set up thesystem to control electronic consumer devices.

FIG. 10 is a schematic illustration of how possible choices available toa user can be limited.

FIG. 11 is an illustration of a method of using a digital image tonarrow down the possible choices of which particular device forconsumers interested in.

FIG. 12 is a flowchart showing how a consumer can obtain a digital imageof a particular device, and then use that image to identify a specificdatabase record referencing that particular control device.

FIG. 13 illustrates how a custom device screen can be created.

FIG. 14 illustrates a resulting smaller custom device screen.

FIG. 15 illustrates a possible device button layout that can beprogrammed for a particular control device of interest.

FIG. 16 is an illustration of a template custom control device withexisting buttons, where the user then assigns a button function to eachof the buttons on the template.

FIG. 17 illustrates a block diagram of the components that make up thefunction device.

FIGS. 17A-17K, 17L1-17L4, 17M1, and 17M2 illustrate the details of thecomponents that make up the function device shown in FIG. 17.

DETAILED DESCRIPTION

The drawings illustrate a system for controlling electronic consumerdevices (ECDs). Household ECDs, as used in this description, can beanything that can be controlled by a remote control device or a keypador some other control device, such as a DVD, a television, anaudiovisual receiver, a sprinkler system, a light switch, an alarmpanel, a game console, a computer, and so on.

Overview

FIG. 2 is one embodiment of a system 100 for controlling electronicconsumer devices (ECDs). System 100 includes a function device 101, adisplay 102, a plurality of ECDs 103-111, a database 112 and a memory113. Database 112 and memory 113 are accessible via a network connection131 to a network such as the internet 115. The ECDs 103-111 include, inthis example, a light switch 103, a heating ventilation and airconditioning (HVAC) controller 104, sprinkler system controller 105, analarm system controller 106, a DVD player 107, a set-top box 108, anaudio-visual receiver 104 (sometimes also referred to as an “audio-videoreceiver” or “AV receiver”), a game console 110, and a television 111.In other embodiments, more or fewer ECDs may be present.

Function device 101 communicates with the database 112. In one example,the database 112 is a database of codesets. For details on an example ofa codeset and what a codeset entails and how a codeset is used, see:U.S. Pat. No. 7,259,696, the subject matter of which is incorporatedherein by reference. Database 112 includes information on the identitiesof many different types of ECDs, and information on the functions ofeach ECD. These functions may, for example, be volume up or down,channel up or down, turn on sprinkler, etc., which can be controlled bya remote control device. The ECD manufacturer usually supplies such aremote control device at the time the ECD is originally sold toconsumers. How to generate the various signals needed to be received bythe ECD in order to make the ECD perform a desired function is set forthin database 112.

In a further example, database 112 is or includes a pictorial recorddatabase of illustrations of remotes or control devices with buttonsthat are used to control the ECD functions. The term “illustration” asit is used here includes both digital photographs and schematicrenderings. The term “control device” as it is used herein encompasses,but is not limited to, a remote control device.

In a further example, in addition to an illustration of the controldevice, database 112 includes extracted graphical information on eachcontrol device. Such extracted graphical information may, for example,include information on the shape of the control device, the buttons(keys) on the control device, the number of buttons and the locations ofthe buttons, and characters or other printing that appears on thecontrol device. The database also includes the ECD function information(keycodes and other codeset information) associated with each button.

Central function device 101 communicates with the database 112 to obtainthe control device's information, such as the devices shape, devicesbutton labels, button shapes, and the button locations i.e., the buttonlayout. Function device 101 also includes a display output 116 thatoutputs a signal to a display device 102. Display device 102 displays aninput screen that illustrates the control device's information, such asthe device's shape, button labels, button shapes and button locations orlayout.

Although function device 101, database 112, memory 113 and displaydevice 102 are illustrated in FIG. 2 as separate devices orfunctionalities, in another embodiment (see FIG. 2A) some or all ofthese system elements can be combined into a single device. In oneexample (not shown), the function device 101 is functionality that isphysically incorporated (not shown) into one of the ECDs, such as thecable set-top box 108. More particularly, a processor can provide someor all of the function device's functionality. The term “processor” asthe term is used herein is a digital processing unit such as amicrocontroller or microprocessor, along with its associated functionalhardware and software. The term includes a microprocessor such as isnormally found in a personal computer, and its functional software.

In one example of operation of system 100, a consumer (not shown)purchases a new ECD. The consumer takes the new ECD home, and plugs itinto an existing home entertainment/ECD system. For example, if the ECDwere a set-top box, such as a cable box, a consumer can connect a cablewire to the box, and then connect the box to an audio-visual system. Ifthe system includes an AV receiver, the consumer might use ahigh-definition media interface (HDMI) cable to connect the cable box tothe AV receiver, as further explained below. Once connected into system100, the following would occur. In this example, the cable box includesa novel function device. The function device within the cable box beginsto recognize the various ECDs in the consumer's home system. Forexample, the function device can determine. the manufacturer, type, andparticular model of the AV receiver using the CEC protocol over the HDMIcable. Once the identity of the AV receiver is determined, the functiondevice then communicates with the database 112 that includes informationabout the various control devices. By communicating to database 112 theparticular identity of the AV receiver, the database can use theidentity information to identify information associated with theparticular control device normally supplied to the consumer when the AVreceiver is sold. Using the ECD identity information, database 112returns to the function device in the cable box that particular ECDfunction information. In some embodiments, it also returns anillustration of the control device supplied by the ECD devicemanufacturer at the time the ECD is sold to consumers.

Not all ECDs have the ability to communicate via HDMI with the functiondevice. In the case of these other ECDs, the consumer may identify theECD for the function device. Using a setup procedure, as furtherexplained below, the consumer identifies the other ECDs in theconsumer's home entertainment/ECD system.

Once all of the ECDs in the system have been identified, the consumercan then use a single display device (for example, display 102) withtwo-way communication to the function device to control all of the ECDs,as further explained below.

Display Device

More particularly, as illustrated in FIG. 2, display 102 is a mobilecommunication device that has a touch screen 114. Display 102 canrespond to a user interacting with the input screen 114. For example,when the screen 114 displays a button 130, and the user can interactwith the button 130. If the display 102 is a multi-touch screen, thedisplay 102 can react to a user touching the button 130 on the screen114. In other less preferred embodiments, a user may use a keyboard (notshown) to tab between buttons and touch a key in order to interact withthe button, or the user can use a mouse (not shown) to mouse over eachbutton and click to interact with the button. There are many differentways for users to interact with an input screen on a display, all ofwhich are considered possible embodiments.

As a result of the user interaction with the input screen, the userinput is communicated to function device 101, and function device 101takes the information from the button function information database 112and uses it to create a signal with the control devices button functioninformation. This signal is then output through a signal output to theECD to be controlled. In one case, the signal output is an IRtransmitter, and the signal is an infrared transmission. In other case,the signal output is an HDMI port, and the signal is an HDMIcommunication that is communicated to the ECD to be controlled by anHDMI cable.

Communication Between Display Device and Function Device

The function device 101 can communicate with the display 102 in manyways. For example, if display 102 is physically located (not shown) inthe same device housing as functional device 101, then a data bus cancommunicate between the display and the function device 101. If thedisplay is physically located in a separate device in a separatehousing, as shown in FIG. 2, other means for communicating between thedisplay and the function device 101 are required. In one example (notshown), the display is hard wired to the function device 101. In anotherexample, as shown in FIG. 2, the display communicates wirelessly withthe function device 101. While all methods of wireless communication canbe used, a preferred method of communication is to use Wi-Fi. In otherembodiments (not shown) a cellular network can be used for communicationbetween the function device 101 and the display 102. Other methods ofcommunication can include using coaxial cable, like an RF signal, and anHDMI cable, including using consumer electronic communication (CEC). Thecommunication between the display device 102 and the function device 101can be one-way or two-way communication. For example, for two-waycommunication, the function device 101 can output the input screeninformation to the display device, and the display device can return tothe function device 101 information about user interaction.

The display device can take many forms. It could be a television, apersonal computer, or a smart phone or smart device such as an AppleInc. iPhone or iPod Touch, both of which have Wi-Fi communicationcapabilities. With Wi-Fi communication capabilities, the display devicecan interact using Wi-Fi with the function device 101.

Communication Between Function Device and Databases

Function device 101 communicates with the button function informationdatabase and the database with pictorial records of other devices. Thesedatabases can be stored in a database server within the function device101, or the database can be located remote from function device 101. Forexample, if the database is on the Internet, then communication with theInternet can permit the function device 101 to communicate with thedatabase. Such communication could be over each Ethernet cable through amodem to a remotely located database server.

Memory

In some instances, user input needs to be recorded. For example if theuser of display device 102 selects, as explained below, a particularcontrol device, then the function device 101 will want to retain thisinformation. As a result, the function device 101 will need tocommunicate with memory to retain this information. So the functiondevice 101 will include some form of memory. The memory may bephysically within the same device housing as the function device 101, orit may be located remotely from the function device 101. If locatedremotely, then some form of communication will need to occur between thefunction device 101 and the remote memory in order to retrieve the userinteraction information. The communication between the memory and thefunction device 101 can be over a data bus, if located in the samephysical housing, or can be over network communication, if locatedremote from the function device 101. If located remotely, then any ofthe previously described methods of communication can be used.

Page Server

In order to display the input screen on display device 102, functiondevice 101 creates an input screen output. In the preferred embodiment,the input screen is a page in a plurality of linked pages. The functiondevice serves the pages using HTML. In other embodiments, other methods,such as by using a stand-alone application to create the input screencan be used. In the preferred embodiment, a browser executing in displaydevice 102 is used to render the input screen on the display of displaydevice 102. Since the user will interact repeatedly with the inputscreen, it is beneficial if the web browser on the display devicesupports HTML and user interaction with the HTML. More particularly, inthe preferred embodiment, the web browser should support JavaScript topermit user interaction with a button without having to refresh theentire user input screen, or some other form of AJAX (AsynchronousJavaScript and XML) process. Still more particularly, in a preferredembodiment, the display device should support enlargement of anyillustration on the display, as shown in FIG. 6.

The page server can be either software processed by the same functiondevice 101 referred to above, or the web server can be located remotelyfrom the function device 101. For example, the web server can be on anetwork web server, and the function device 101 can communicate with thenetworked web server. The term “web server” as it is used here is notlimited to use on the World Wide Web, but rather is a page server oflinked pages, regardless of whether the pages are part of the World WideWeb or whether the pages are only locally accessible.

Function Device and ECD Communication

As mentioned earlier, function device 101 communicates with variousECDs. The communication can use any of the above-described methods ofcommunicating a signal, such as using infrared Wi-Fi, HDMI, CEC and/orRF. Another form of communication between the function device and theECDs may be a Wave, or Zigbee, which is a known method of communicationbetween household ECDs such as light switches and devices for itscontrolling the light switch. In many cases, the communication will beone way. For example, the function device 101 can cause a television toturn on. Or function device 101 can tell the television volume toincrease. In other circumstances, two-way communication can occurbetween function device 101 and the ECD. For example, if communicatingover HDMI or zWave, a signal to turn on can be communicated to a lightswitch, and some sort of response indicating the light did in fact turnon can be returned to function device 101, so that the user can confirmthat the light was turned on. In still other examples, as describedbelow, the existence of a particular ECD may be communicated to functiondevice 101 through such two-way communication. Other methods ofcommunication can also include X10 and RS-485, as illustrated in FIG.17.

Mood Buttons

In addition to merely responding to user input regarding buttoninteraction, the system can also handle more complicated actions. Forexample, a combination of many button functions can occur in response tothe user interaction with one particular button. For example, a user canin the morning turn on various ECDs. Lights can be turned on, and acoffee pot started. For example, one button labeled MORNING, asillustrated in FIG. 7, can be used on the display device to cause thesevarious different ECD function commands to be output by the functiondevice 101, in response to the user interacting with the MORNING buttonon the display device.

Pictorial Database

Referring again to the database that contains the pictorial records, anexample database 120 is illustrated in FIG. 3. Database 120 includesrecords 124 for different control devices, and each record 124 includesinformation on the control device's shape, the button layout of thecontrol device, and the button labels and other text that can appear onthe control device. Each record 124 also includes the code 126 orsignals associated with each button 128 on the control device 124. Thesecodes may, for example, be referred to as keycodes.

FIG. 4 illustrates a sample selection of device shapes and buttonlayouts. Various pieces of text (such as the ECD manufacturer, as bestseen in FIG. 14) also appear in various locations on each device. Inaddition to such text, various symbols also appear on each device,either on the buttons or otherwise. The pictorial database includes thisinformation regarding the symbols, the buttons, the shapes of thebuttons, the button locations, and the shape of the overall controldevice. In other less preferred embodiments, a subset of thisinformation can be used.

Types of Control Devices

The pictorial database includes information on many different kinds ofother devices. For example, reference can be made to FIGS. 5A and 5Billustrating various sample control devices used for control of ECDs,such as a DVD, cable box, a DVD player, and a television. Other ECDsinclude, for example, referring to the Figure illustrating other controldevices, an alarm system, and HVAC control, as well as a light switchwall plate.

Types of ECD Interaction and Display Response

In regard to lights, lights can be turned on or off or dimmed orbrightened. In addition to having the buttons merely respond to userinput, the buttons can also change color or otherwise respond to userinteraction. For example, if a light is turned on, a button on displaydevice 102 can change color to indicate that the light is on.

Main Input Screen

The main input screen shown on the display device can permit a user toselect generally the category of user desired ECD interaction. Anexample of a main input screen is shown in FIG. 8. The user can selectwhich type of ECD to use. In addition, the user can select variouscustom control devices, created as explained below. In addition, theuser can choose to build a new custom control device, to teach thedevice to learn how to behave like an existing control device, or to setup the function device 101, as explained below.

IR Learning

In addition to the function device 101 communicating with a database ofpictorial records and other button information, the system can alsolearn a particular control device's button function information. Thiscan be done using an IR learning process, as commonly known in the art.

System Setup

An important aspect of the system of FIG. 2 is the ability of the systemto permit easy setup of the system. Setup as used herein means theselection of the choice of control devices to be imitated. An example ofa setup procedure, as illustrated in FIG. 10, is as follows. Functiondevice 101 outputs a user input screen to display device 102. The inputscreen, as rendered on the display of display device 102, presents theuser with a choice of a one of the following criteria: a controldevice's shape, a control device manufacturer, a control device type ofECD to be controlled, and a selection of other device button layouts.The user interacts with the input screen to select one of the criteria.Display device 102 then communicates with function device 101, and thefunction device 101 communicates with the device pictorial database toreduce the number of other devices of interest to the user. For example,if the user selects the manufacturer “Sony” from a list of ECDmanufacturers presented to the user, then only Sony devices would beavailable to the user for further selection. More particularly, asillustrated in FIG. 11, the second criterion will depend on the firstcriterion selected by the user. For example, if ECD type, such as DVD ortelevision or receiver, was selected as the first criterion, than asecond choice presented to the user may be a list of ECD manufacturers.Another option would be to show a selection of button layouts for otherdevices, or to show the shapes of other devices. When the secondcriterion is then selected, the display device 102 will communicateagain with function device 101, which in turn will communicate with thedevice database. As a result of the narrower criterion, the set ofpossible choices presented to the user will be further narrowed. The setof possible choices is then returned to the function device 101, and thefunction device 101 creates an input display screen with a more limitedselection choices. The user interacts with the user input screen toselect a particular device of interest to the user. If, in the firstinstance, the user selected device manufacturer, then the secondcriterion may be to show the types of ECDs made by that manufacturer. Inthe alternative, after selecting a device manufacturer, the secondcriteria may be button layouts of devices made by that manufacturer, orthe shapes of such devices. Likewise, if device shape is the firstcriterion, then the second criterion can be either a button layout orthe device manufacturer or the type of ECD.

Processing the Selected Device

Once particular control device is selected, then display device 101communicates the device selection to the function device 101. Functiondevice 101 in turn communicates with the device pictorial recorddatabase to return to the function device 101 a pictorial record for theselected device. The pictorial record shows the control device shape,the button layout on the control device, and any text that appears onthe control device. Function device 101 also obtains all of the buttonfunction information from the button information database. The buttonfunction database referred to here is sometimes referred to as a codesetdatabase. The button information database can be the same database asthe pictorial database, or it may be another database.

Once function device 101 has obtained all necessary information aboutthe control device to imitate the control device, an illustration of thecontrol device is output, via the page server, to the display devicealong with codeset information and/or other information usable toimitate the original control device. The illustration appears on theuser input screen that is displayed on the display device. The user thencan interact with the buttons on the user input screen to select variousdevice functions of the control device.

Using Communication with an ECD to Identify a Control Device

Another method of obtaining information about what ECDs the user wantsto control involves having function device 101 output a communicationquery signal across the HDMI-CEC bus to any newly connected ECDs, asshown in FIG. 9. The newly connected ECD automatically responds bycommunicating back ECD identification information across the CEC bus.This ECD identification information may include a brand name in ASCIIcharacters, a device type in ASCII characters, and a model number inASCII characters. Function device 101 parses and interprets thisreturning ECD identification information, and then forwards some or allof it, or a determination based on it, to the control device pictorialdatabase. The pictorial database returns an illustration of theassociated control device, which is forwarded to display device 102 soan image of the control device is displayed to the user on displaydevice 102.

Using an Image of a Control Device to Identify a Control Device

Another method of obtaining information from a user regarding aparticular control device to be imitated by the system, is to begin witha digital photograph of the control device to be imitated, asillustrated in FIGS. 11 and 12. The user can obtain this digitalphotograph (image) using a digital camera. For example, the Apple iPhonehas a digital camera built into the smart phone. Once the digital cameracaptures an image of the control device to be imitated (for example, asa JPEG file), the image is communicated to the function device 101 usingany suitable method of communication. With an Apple iPhone, the imagecould be transferred via Wi-Fi to the function device 101. In oneparticular embodiment, display device is a cellular telephone havingcamera functionality, and the cellular telephone is used to capture adigital image and to transmit the digital photograph to function device101.

Function device 101 then analyzes the digital photograph (image) orcommunicates with another function device 101 that analyzes the digitalphotograph or image. The analyzing function device typically usesoptical recognition techniques to analyze one or more of the followingcharacteristics of the image: the shape of the outer contour of thepictured control device, the location and number of buttons on thepictured control device, the characters or text appearing on thebuttons, and any characters or text of other printing that appears onthe control device. Any one or all of the above pieces of extractedgraphical information can be extracted from the raw digital photograph.This information can be obtained from the digital image using knownoptical recognition approaches, or by using techniques used with facialrecognition, for example. Once the graphical information has beenextracted using optical recognition, the extracted information iscommunicated to a database that includes similar types of previouslyextracted graphical information about other control devices. Based onsuch extracted graphical information, a particular control device in thedatabase is selected as the best match. After the particular controldevice has been selected, information particular to the particularcontrol device is communicated back to the function device 101. Functiondevice 101 may forward the information to display device 102.

More Particulars Regarding What is Analyzed in the Digital Image

By referring to FIG. 4 illustrating a sample selection of control deviceshapes and button layouts, it can be observed that often control deviceshave unique shapes. For example, in FIG. 4B, one remote has a tear droptype of shape. The control device in FIG. 40 has a relatively straightsided shape with parallel sides, but with rounded ends. The device inFIG. 4A has straight parallel sides and relatively straight parallelends, while the device in FIG. 4C has a rounded contour in the middle ofthe device, which makes it readily distinguishable from the controldevices. This device shape information can be used by the opticalrecognition software executing in function device 101 to identify aparticular control device. In addition, by referring to this samefigure, one can observe various characters on the devices. In someinstances, the characters identify the device manufacturer. Thisinformation can be used to select or narrow down the particular devicesof interest. In addition, the button layout, and the Symbols on thebuttons, as illustrated in this figure, can also be used.

Device Operation

Once the narrowing down process has concluded and a particular controldevice has been identified, an illustration of the identified controldevice is made to be displayed on display device 102 and the user caninteract with the control device illustration to select a control devicebutton to create a signal to control an ECD function. Once the user hasidentified multiple such control devices (for example, that might beusable to operate various different ECDs in the user's home), the usercan then interact with the illustrations of the control devices toimitate the operation of the control devices. When the user selects aparticular button on an illustration, for example, the display devicecommunicates with the function device 101, telling the function device101 what button was selected. The function device 101 then outputs asignal to a signal output, which, for example, can be an IR emitter,that then emits the appropriate IR code for that function for thatparticular ECD, so that the particular ECD can respond to that command.Alternatively the signal output is a hardwired bus port such as, forexample, an HDMI port into which an HDMI cable is plugged.

Custom Control Device Creation

In addition to permitting the user to interact with ECDs by usingillustrations of the control devices typically used to control suchECDs, the system of FIG. 2 offers the creation of a custom controldevice. A custom control device is one that realized a selection ofbutton functions from multiple different control devices. To create sucha custom control device, the function device 101 outputs at least onecollection of button information from one of the control devices ofinterest to the user. In the preferred embodiment, the original buttonlayout, including the shape of the control device, is displayed on theuser input screen, as illustrated in FIG. 14. The user then interactswith the buttons on the user input screen, by either selecting a button,choosing a menu option or other control that says use such button, or,in the preferred embodiment, by dragging and dropping the illustratedbutton to another location on the input screen. In this manner, the usermakes that particular button part of the custom control deviceillustration 140. By then continuing to choose various buttons, thesevarious buttons and button functions are added to the custom controldevice. In the end, the custom control device includes a collection ofbuttons and button functions from the depicted other control devices ofinterest to the user. After completing the building or creating of thecustom control device, a done or finish button 142 is selected by theuser, and this user input is communicated to the function device 101.The function device 101 then creates the custom control deviceillustration. The custom control device illustration is then output tothe display device.

In one embodiment, as illustrated in FIG. 14, the custom control devicebuttons used to control a television, for example, can be the buttonsused to control the television in a custom control device area labeledTV. Likewise, the buttons used to control a cable set-top box could begathered in a custom control device location entitled Cable. To buildthe custom control device, the user drags and drops selected buttonsfrom the illustrations appearing to the right in FIG. 14. These selectedbuttons are dropped in the area illustrated to the left in FIG. 14.

By including only particular buttons of interest to the user on thecustom control device, the custom control device offers a simpler devicefor control of ECDs. In the preferred embodiment, the custom controldevice ends up with an illustration of buttons, as shown in FIG. 15,which is much more compact in size than the original shape of thevarious other devices of interest to the user. This permits the buttonsizes to be larger, making it easier for user interaction. This alsosimplifies the amount of information the user has to deal with in orderto interact with the various ECDs.

Assigning Functions to Custom Control Device Buttons

In FIG. 16, another approach to custom control device creation isillustrated. In this procedure, the user input screen begins with atemplate custom control device with existing buttons. The user thenassigns various button functions to each of the buttons on the templatecustom control device. This is done in a fashion similar to thedescription of selection of buttons referred to earlier. The controldevice of interest to the user is illustrated, and the user drags anddrops buttons of interest from the illustrated control device to thetemplate custom control device, thereby assigning functions of theselected buttons to the buttons on the custom control device. As shownin FIGS. 15 and 16, the resulting custom control device input screensare much simpler than the original, relatively busy, control devices.

Function Device Construction

The function device 101 can include various components. These componentsmay be housed in one housing, or in separate housings with communicationbetween the various housings. In the embodiment in FIG. 17, the functiondevice 101 includes a power source, a fan control, a RS-232 port, and ageneral-purpose processor board. The function device 101 also includesflash memory, z-Wave, X10 and RS-485 wireless communication, and IRlearning. The function device 101 also includes IR outputs, HDMI ports,and a level shifter. The function device 101 also includes Wi-Fi inputsand outputs, SRAM, RS485, an Ethernet router, and an X10 TW523. Theparticulars regarding these various components are illustrated in FIGS.17A through 17M.

Although certain specific exemplary embodiments are described above inorder to illustrate the invention, the invention is not limited to thespecific embodiments. The use of an HDMI-CEC communication to identify aremote control device usable to control an ECD, or to identify a codesetusable to control an ECD, has general applicability. The use of adigital photograph of a remote control device (and/or of an ECDcontrollable by the remote control device) to identify information aboutthe remote control device (and/or about the ECD) has generalapplicability. For example, a web-based service can receive a digitalphotograph via the internet, can perform optical recognition on thedigital photograph and use the results of the optical recognition toidentify information in a database about the remote control deviceand/or an ECD controllable by the remote control device. The identifiedinformation can be returned to the user via the internet and the usercan be billed for the service. Accordingly, the lookup functionperformed by function device 101 and database 112 need not be localizedto a user's home. The storage of digital images of remote controldevices in a codeset database has general applicability, as does thestorage of extracted graphical information about remote control devicesin the codeset database. Accordingly, various modifications,adaptations, and combinations of various features of the describedembodiments can be practiced without departing from the scope of theinvention as set forth in the claims.

What is claimed is:
 1. A function device, comprising: a first receiverfor receiving communications via use of a wireless communicationschannel from a portable device having installed thereon a remote controlapplication that is operable to provide to a display of the portabledevice a plurality of portable device input elements; a firsttransmitter for transmitting communications via use of a wiredcommunications channel to a controllable, target appliance; a memorydevice; and a processor device coupled to the first receiver, the firsttransmitter, and the memory device; wherein the memory device has storedthereon a command codeset and instructions executable by the processingdevice and wherein the instructions, when executed by the processingdevice, cause the function device to: use a button information thatidentifies a one of the plurality of portable device input elements thathas been selected by a user of the portable device as received from theportable device via use of the first receiver to select a command codefrom the command codeset; use the command code selected from the commandcodeset to create a command signal for transmission to the controllable,target appliance; and transmit to the controllable, target appliance viause of the first transmitter the command signal to thereby control afunctional operation of the controllable, target appliance.
 2. Thefunction device as recited in claim 1, wherein the wirelesscommunications channel comprises a radio frequency protocolcommunications channel.
 3. The function device as recited in claim 1,wherein the wireless communications channel comprises an infraredprotocol communications channel.
 4. The function device as recited inclaim 1, wherein the wired communications channel comprises a HighDefinition Multimedia Interface-Consumer Electronic Control protocolcommunications channel.
 5. The function device as recited in claim 1,wherein the function device further comprises a second transmitter fortransmitting communications via use of the wireless communicationschannel to the portable device, the processing device is coupled to thesecond transmitter, and the instructions, when executed by theprocessing device, further cause the function device to provide to theportable device via use of the second transmitter data for use increating a graphical user interface having the plurality of portabledevice input elements to be displayed in the display of the portabledevice.
 6. The function device as recited in claim 1, wherein thefunction device comprises a media access device in communication withthe controllable, target appliance.
 7. The function device as recited inclaim 6, wherein the media access device comprises a settop box.
 8. Thefunction device as recited in claim 7, wherein wired communicationschannel comprises a wired High-Definition Multimedia Interfacecommunications connection.
 9. The function device as recited in claim 1,further comprising a second receiver for receiving communications viause of a network channel from a remotely located server device, theprocessing device is coupled to the second receiver, and wherein theinstructions, when executed by the processing device, further cause thefunction device to store in the memory device the command codeset asreceived from the remotely located server via the second receiver. 10.The function device as recited in claim 9, further comprising a thirdreceiver for receiving communications via use of the wiredcommunications channel from the controllable, target appliance, a secondtransmitter for transmitting communications via use of the networkchannel to the remotely located server device, the processing device iscoupled to the third receiver and the second transmitter, and whereinthe instructions, when executed by the processing device, further causethe function device to transmit to the remotely located server via thesecond transmitter device identifying data received from thecontrollable, target appliance via the third receiver to thereby receivefrom the remotely located server via the second receiver the commandcodeset.